const mysql = require('mysql');
const config = require('../../config');

/**
 * 1、连接mysql
 * mysql.createConnection(哪台服务器，用户名，密码，库, port:);
 * port端口，默认
 */
// var db = mysql.createConnection({
//     host : 'localhost',
//     port : 3306,
//     user : 'root',
//     password : 'leeyao22',
//     database : 'nodedb'
// });
// console.log(db);
// db.query('SELECT * FROM user;', (error, data) => {
//     if (error) {
//         console.log("出错了： ", error);
//     }else
//         console.log(data);
// });

/**
 * 针对服务器使用连接池
 * cost dbPool = mysql.createPool({host:...});
 */
// const dbPool = mysql.createPool({
//     host : 'localhost',
//     user : 'root',
//     password : 'leeyao22',
//     database : 'nodedb'
// });
const dbPool = mysql.createPool({
    host : config.databaseHost,//,'localhost',
    user : config.databaseUser,//'root',
    password : config.databasePwd,//'Deng%)#@real5032',
    database : config.database,//'learner'
});
// console.log(dbPool);
dbPool.query("SELECT * FROM user", (error, data)=> {
    if (error) {
        console.log("错了", error);
    }else {
        console.log(data);
    }
});

/**2、查询     
 * 操作数据库为异步操作
 * query(干啥，回调)
*/

/**
 * SQL标准写法：
 * 1、关键字大写 2、库，表，字段需加上反单引号‘‘(可选)
 * 
 * 四大查询语句：增删改查
 ***** 增：INSERT
 *      INSERT INTO table_name (key1, key2...) VALUES(value1, value2....);
 * 
 ***** 删：DELETE
 *      DELETE FROM table_name WHERE ...
 ***** 改：UPDATE
 *      UPDATE table_name SET key1=value1,key2=value2,... WHERE key=value...;
 ***** 查：SELECT
 *     1、 SELECT * FROM table_name;
 *     2、 SELECT key1,key2... FROM table_name;  //把所有key1, key2...字段的内容查出来
 *     3、 SELECT * FROM table_name WHERE key=${variable}; //js中变量查询variable表示变量
 *     4、 SELECT COUNT(*) FROM table_name; //计数有多少查询结果
 * 
 * 
 * 子句：
 *      WHERE 条件
 *      WHERE name = 'blue'
 *      WHERE age > 18
 *      WHERE age <= 18
 *      WHERE age > 18 AND score > 60
 *      WHERE age > 18 OR score > 60
 * 
 * 排序：ORDER BY
 *      ORDER BY age ASC（升序：从小到大） / DESC（降序：从大到小）
 * 
 * ----->价格(price)升序排序，如果价格相同，在按销量(sales)降序排序
 *      ORDER BY price ASC, sales DESC
 * 
 * 聚类(合并相同)：GROUP
 * ----->统计每个班的人数（student_table）
 *      class   name
 *      1       小李
 *      2       小红
 *      4       小华
 *      1       小刘
 *      2       小刚
 *      3       小张
 *      4       小五
 *      1       小六
 *      SELECT * FROM student_table GROUP BY class;之后的结果：这句只是去重
 *      class   name
 *      1       小李
 *      2       小红
 *      4       小华
 *      3       小张
 *      SELECT class, COUNT(class) FROM student_table GROUP BY class; //计数了每个班级的人数
 *      class   COUNT(class)
 *      1       3
 *      2       2
 *      4       2
 *      3       1
 * 
 * 函数：COUNT  MIN   MAX   AVG   SUM
 * 
 *  * ----->每个班（student_table）
 *      class   name    score
 *      1       小李     69
 *      2       小红     97
 *      4       小华     60
 *      1       小刘     78
 *      2       小刚     67
 *      3       小张     88
 *      4       小五     77
 *      1       小六     87
 *      SELECT class, MAX(score), MIN(sore) FROM student_table; //查询班级，并把相应的班级最高分和最低分列出
 *      class   MAX(score)    MIN(score)
 *      1       87            69
 *      2       97            67
 *      4       77            60
 *      3       88            88
 * 
 * ***  电商表(user_trans)
 *      name    price
 *      lee     100
 *      lee     300
 *      yao     1000
 *      yao     2000
 *      yao     4000
 *      SELECT name, SUM(price) FROM user_trans GROUP BY name;//汇总每个人的消费
 *      SELECT  name,SUM(price) FROM user_trans GROUP BY name ORDER by SUM(price) DESC; //汇总每个人的消费，并降序
 * 
 * 
 * LIMIT   限制，分页查询
 *      LIMIT 10;  需要前十条数据
 *      LIMIT 5, 8;  //从第5条开始，要8条数据
 * 
 * 数据顺序：WHERE -> GROUP -> ORDER -> LIMIT
 *          SELECT  name,SUM(price) FROM user_trans 
 *                                  GROUP BY name 
 *                                  ORDER by SUM(price) DESC 
 *                                  LIMIT 2;
 * 
 * 
 * 
 * 
 */
